# @Filename:    mathFunction
# @Author:      王佳伟
# @Time:        2025-04-07 16:07
# @Describe:    算数函数
import numpy as np

# # 三角函数
# # NumPy 拥有标准的三角函数，它为弧度制单位的给定角度返回三角函数比值。
# a = np.array([0, 30, 45, 60, 90])
# print('不同角度的正弦值：')
# # 通过乘 pi/180 转化为弧度
# print(np.sin(a * np.pi / 180))
# print('\n')
# print('数组中角度的余弦值：')
# print(np.cos(a * np.pi / 180))
# print('\n')
# print('数组中角度的正切值：')
# print(np.tan(a * np.pi / 180))
#
# print("===========================")
#
# # numpy.around()
# # 这个函数返回四舍五入到所需精度的值。 该函数接受以下参数。
# # numpy.around(a,decimals)
# # a 输入数组
# # decimals 要舍入的小数位数。 默认值为0。 如果为负，整数将四舍五入到小数点左侧的位置
#
# a = np.array([1.0, 5.55, 123, 0.567, 25.532])
# print('原数组：')
# print(a)
# print('\n')
# print('舍入后：')
# print(np.around(a))
# print(np.around(a, decimals = 1))
# print(np.around(a, decimals = -1))
#
# print("===========================")
#
# # 此函数返回不大于输入参数的最大整数。
# # 即标量x 的下限是最大的整数i ，使得i <= x。
# # 注意在Python中，向下取整总是从 0 舍入。
#
# a = np.array([-1.7, 1.5, -0.2, 0.6, 10])
# print('提供的数组：')
# print(a)
# print('\n')
# print('修改后的数组：')
# print(np.floor(a))
#
# print("===========================")
#
# # numpy.ceil()
# # ceil()函数返回输入值的上限，即，标量x的上限是最小的整数i ，使得i> = x。
# a = np.array([-1.7, 1.5, -0.2, 0.6, 10])
# print('提供的数组：')
# print(a)
# print('\n')
# print('修改后的数组：')
# print(np.ceil(a))

a = np.arange(9, dtype = np.float_).reshape(3, 3)
print('第一个数组：')
print(a)
print('\n')
print('第二个数组：')
b = np.array([10, 10, 10])
print(b)
print('\n')
print('两个数组相加：')
print(np.add(a, b))
print('\n')
print('两个数组相减：')
print(np.subtract(a, b))

print("===========================")

# numpy.reciprocal()
# 此函数返回参数逐元素的倒数，。 由于 Python 处理整数除法的方式，对于绝对值大于 1 的整数元素，结果始终为 0， 对于整数 0，则发出溢出警告。
a = np.array([0.25,  1.33,  1,  0,  100])
print('我们的数组是：')
print(a)
print('\n')
print('调用reciprocal函数：')
print(np.reciprocal(a))
print('\n')
b = np.array([100], dtype=int)
print('第二个数组是：')
print(b)
print('\n')
print('调用reciprocal函数：')
print(np.reciprocal(b))

print("===========================")

# numpy.power()
# 此函数将第一个输入数组中的元素作为底数，计算它与第二个输入数组中相应元素的幂。

a = np.array([10, 100, 1000])
print('我们的数组是：')
print(a)
print('\n')
print('调用power函数：')
print(np.power(a, 2))
print('\n')
print('第二个数组：')
b = np.array([1, 2, 3])
print(b)
print('\n')
print('再次调用power函数：')
print(np.power(a, b))

print("===========================")

# numpy.mod()
# 此函数返回输入数组中相应元素的除法余数。 函数numpy.remainder()也产生相同的结果。

a = np.array([10, 20, 30])
b = np.array([3, 5, 7])
print('第一个数组：')
print(a)
print('\n')
print('第二个数组：')
print(b)
print('\n')
print('调用mod()函数：')
print(np.mod(a, b))
print('\n')
print('调用 remainder() 函数：')
print(np.remainder(a, b))

print("===========================")
# 以下函数用于对含有复数的数组执行操作。
#
# numpy.real() 返回复数类型参数的实部。
#
# numpy.imag() 返回复数类型参数的虚部。
#
# numpy.conj() 返回通过改变虚部的符号而获得的共轭复数。
#
# numpy.angle() 返回复数参数的角度。 函数的参数是degree。 如果为true，返回的角度以角度制来表示，否则为以弧度制来表示。

a = np.array([-5.6j, 0.2j, 11., 1+1j])
print('我们的数组是：')
print(a)
print('\n')
print('调用real()函数：')
print(np.real(a))
print('\n')
print('调用imag()函数：')
print(np.imag(a))
print('\n')
print('调用conj()函数：')
print(np.conj(a))
print('\n')
print('调用angle()函数：')
print(np.angle(a))
print('\n')



